package la.iok.hzsvn.lewin.movie.service;

import la.iok.hzsvn.lewin.movie.core.Token;
import la.iok.hzsvn.lewin.movie.core.movieservice.vo.MovieLevelVo;
import la.iok.hzsvn.lewin.movie.entity.MovieLevel;
import la.iok.hzsvn.lewin.movie.model.MovieLevelParam;
import la.iok.hzsvn.lewin.mybatis.service.BaseService;
import la.iok.hzsvn.share.annotations.NotNull;
import la.iok.hzsvn.share.annotations.Nullable;

import java.util.Collection;
import java.util.List;

public interface MovieLevelService extends BaseService<MovieLevel,Long> {
    /**
     * 验证权限并删除剧本级别
     * @param token 操作用户
     * @param id 剧本级别id
     */
    void delete(@NotNull Token token, @Nullable Long id);

    /**
     * 保存剧本级别
     * @param token 操作用户
     * @param param 剧本级别信息
     */
    Long save(@NotNull Token token, @NotNull MovieLevelParam param);

    /**
     * 修改剧本级别
     * @param token 操作用户
     * @param id 记录id
     * @param param 修改的信息
     */
    void update(@NotNull Token token, @NotNull Long id, @NotNull MovieLevelParam param);

    /**
     * 实体对象转视图对象
     * @param entities 数据实体集
     * @return 数据视图对象集
     */
    List<MovieLevelVo> po2vo(Collection<MovieLevel> entities);
}
